www.gusucode.com > XerCMS 携云PHP企业建站程序 v2015PHP源码程序 > XerCMS 携云PHP企业建站程序 v2015/XerCMS_v20150724/XerCMS_v20150724/XerCMS/Modules/forum/tag/XerCMS_forum.php

    <?php
/**
 * @name     XERCMS
 * @author   Arno <XerCMS@163.com> [QQ:1328013]
 * @version  1.0.0
 * @link     http://www.XerCMS.com 
 */

!defined('XERCMS') && exit('Access Denied');

class XERCMS_TAG_FORUM
{
  
     function nav($param,$html,$layer) {
          $val = php::dfor($param);
          return '<?php if(isset($G["nav_forum"]['.$param['bid'].']) == false) {$G["nav_forum"]['.$param['bid'].'] = include(INC.\'Caches/forum/'.(strpos($param['bid'],'$') !== false ? '\'.'.$param['bid'].'.\'' : $param['bid']).'.php\');}foreach($G["nav_forum"]['.$param['bid'].'] as '.$val.') { ?>'.$html.'<?php } ?>';
     }
  
     function posts($param,$html,$layer) {
          $sql = 'ORDER BY '.inArray($param['by'],array('displayorder','published','edittime'));
          $sql .= ' '.inArray($param['order'],array('DESC','ASC'));
          $sql .= isset($param['limit']) ? ' LIMIT '.$param['limit'] : ' LIMIT 30';
          $sql = 'SELECT p.tid,p.pid,p.uid,p.content,p.published,p.edittime,m.nick,t.bid FROM xercms_forum_posts p LEFT JOIN xercms_member_profile m ON m.uid = p.uid LEFT JOIN xercms_forum_topic t ON t.tid = p.tid WHERE  p.state = 1  '.$sql;
          $val = php::dfor($param);
          return '<?php $data_'.$layer.' = '.(isset($param['cache']) ? 'Cache::fetchSql(\''.$sql.'\','.(int)$param['cache'].')' : 'DB::fetch_all(\''.$sql.'\')').';foreach($data_'.$layer.' as '.$val.') { ?>'.$html.'<?php } ?>';
     }
  
     function topic($param,$html,$layer) {
          $sql = isset($param['bid']) ? ' AND t.bid in ('.php::dvar($param['bid']).')' : '';
          $sql .= isset($param['uid']) ? ' AND t.uid in ('.php::dvar($param['uid']).')' : '';
          $sql .= isset($param['category']) ? ' AND t.category in ('.php::dvar($param['category']).')' : '';	
          $sql .= isset($param['digest']) ? ' AND t.digest in ('.php::dvar($param['digest']).')' : '';
          $sql .= isset($param['private']) ? ' AND t.private in ('.php::dvar($param['private']).')' : '';	
          $sql .= ' ORDER BY '.(in_array($param['by'],array('displayorder','published','edittime')) ? 't.'.$param['by'] : 'c.'.inArray($param['by'],array('hits','rely','flower','egg','favorites')));
          $sql .= ' '.inArray($param['order'],array('DESC','ASC'));
          $sql .= isset($param['limit']) ? ' LIMIT '.$param['limit'] : ' LIMIT 30';
          $sql = 'SELECT t.tid,t.bid,t.uid,t.published,t.subject,t.edittime,m.nick,c.* FROM xercms_forum_topic t,xercms_member_profile m,xercms_topic_count c WHERE  t.state = 1 AND t.tid = c.tid AND m.uid = t.uid '.$sql;
          $val = php::dfor($param);
          return '<?php $data_'.$layer.' = '.(isset($param['cache']) ? 'Cache::fetchSql(\''.$sql.'\','.(int)$param['cache'].')' : 'DB::fetch_all(\''.$sql.'\')').';foreach($data_'.$layer.' as '.$val.') { ?>'.$html.'<?php } ?>';
     }
  
     function board($param,$html,$layer) {
          $sql = isset($param['bid']) ? 'b.bid in ('.php::dvar($param['bid']).')' : '';
          $sql .= isset($param['parent']) ? 'b.parent in ('.php::dvar($param['parent']).')' : '';
          $sql = empty($sql) ? '' : ' WHERE '.$sql;
          $sql = 'SELECT b.bid,b.icon,b.name,b.keyword,b.des,b.topic,b.posts,b.outer,b.urlpath,p.uid,p.content,m.nick,p.tid FROM xercms_forum_board b left join xercms_forum_posts p on p.pid = b.pid LEFT JOIN xercms_member_profile m ON m.uid = p.uid '.$sql;
          $val = php::dfor($param);
          return '<?php $data_'.$layer.' = '.(isset($param['cache']) ? 'Cache::fetchSql(\''.$sql.'\','.(int)$param['cache'].')' : 'DB::fetch_all(\''.$sql.'\')').';foreach($data_'.$layer.' as '.$val.') { ?>'.$html.'<?php } ?>';
     }
}
?>